//
//  MDHRouter.h
//  MDHPT
//
//  Created by 高得华 on 2019/4/27.
//  Copyright © 2019年 高得华. All rights reserved.
//  ViewModel -- ViewController

#import <Foundation/Foundation.h>
#import "MDHViewController.h"
/// APP管理的导航栏的堆栈
#import "MDHNavigationControllerStack.h"
//APP的网络层级
#import "MDHViewModelServicesImpl.h"

NS_ASSUME_NONNULL_BEGIN

@interface MDHRouter : NSObject

/// Retrieves the shared router instance.
///
/// Returns the shared router instance.
+ (instancetype)sharedInstance;

/// APP的网络服务层
@property (nonatomic, readonly, strong) MDHViewModelServicesImpl * services;
/// APP管理的导航栏的堆栈
@property (nonatomic, readonly, strong) MDHNavigationControllerStack *navigationControllerStack;

/// Retrieves the view corresponding to the given view model.
///
/// viewModel - The view model
///
/// Returns the view corresponding to the given view model.
- (MDHViewController *)viewControllerForViewModel:(MDHViewModel *)viewModel;

/// 这里是viewModel -> ViewController的映射
/// If You Use Push 、 Present 、 ResetRootViewController ,You Must Config This Dict
- (void)viewModelViewMappings:(NSDictionary *)dict;

@end

NS_ASSUME_NONNULL_END
